//
//  RXHomeViewController.swift
//  weibo
//
//  Created by uncle-R on 15/12/15.
//  Copyright © 2015年 uncle-R. All rights reserved.
//

import UIKit

class RXHomeViewController: RXBaseController {
    //MARK: - 属性
    ///储存微博数据
    var statuses: [RXStatus]?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //用户要是没有登录的话,直接返回,不加载登录后的导航栏界面.
        if !RXUserAccount.userIslogin {
            return
        }

        //设置导航栏
        setNavBtn()
        // 设置cell预估行高
        tableView.estimatedRowHeight = 200
        
        // 设置cell行高根据约束来自适应
        tableView.rowHeight = UITableViewAutomaticDimension

        tableView.separatorStyle = UITableViewCellSeparatorStyle.None
        
        //调用微博模型来加载微博数据
        tableView.registerClass(RXStatusCell.self, forCellReuseIdentifier: identifier)
       
        RXStatus.mLoadStatus { (statues, error) -> () in
            
            if error != nil && statues == nil{
                print("加载微博数据出错")
                 return
            }
//         ******Optional(20)******* //test: 已经加载到20个可用的模型数据了.
//           print("******\(statues?.count)*******")
            //将微博的内容 获取
            self.statuses = statues
            //刷新数据
        self.tableView.reloadData()
            
        }

      
    }

    ///设置导航栏
    func setNavBtn(){
        
        navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "navigationbar_friendsearch")
        navigationItem.rightBarButtonItem = UIBarButtonItem(imageName: "navigationbar_pop")
        
        //??表示 如果前面可选如果有值 就拆包, 如果没有值 就会返回后面的值.
        let title = RXUserAccount.loadUserAccount()?.screen_name ?? "没有获取到用户名"
        let  titleButton = RXTitleView(imageName: "navigationbar_arrow_down", titleName: title)
         navigationItem.titleView = titleButton
        //添加点击事件
        titleButton.addTarget(self, action: "titleBtnClick:", forControlEvents: UIControlEvents.TouchUpInside)
        
        
        
    }
    ///导航头view的监听方法
    func titleBtnClick(btn:UIButton){
        
        btn.selected = !btn.selected
        //根据按钮的选中状态旋转
        //旋转上去
            UIView.animateWithDuration(0.25, animations: { () -> Void in
                btn.imageView?.transform = btn.selected ? CGAffineTransformMakeRotation(CGFloat(M_PI-0.001)) : CGAffineTransformIdentity
            })
        }

    
    // MARK: - Table view data source

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        
        //要是没有值的话 为了不报错, 默认赋值给 0
        return statuses?.count ?? 0
    }
    let identifier = "HomeCell"

    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier(identifier) as! RXStatusCell
        //取出模型
        let model = statuses?[indexPath.row]
        
        cell.status = model
        
        return cell
        
    }
    
    
    
  }
